Описание
Объект Relation представляет связь между полями таблиц или
запросов (только в базах данных Microsoft Jet).
Замечания
Свойства объекта Relation позволяют выполнить следующие
действия:
1. Установить режим сохранения целостности данных для связи между
полями в основных таблицах (однако, этого нельзя сделать для связи с участием
запроса или присоединенной таблицы).
2. Установить связи без поддержания
целостности данных между полями любых таблиц или запросов — принадлежащих базе
данных или присоединенных.
3. Ссылаться при помощи свойства Name на
связь между полями адресуемой главной таблицы и адресующей внешней
таблицы.
4. При помощи свойства Attributes определить тип связи между
полями таблиц (отношение "один-к-одному" или отношение "один-ко-многим" ), а
также режим поддержания целостности данных.
5. Указать с помощью свойства
Attributes, может ли ядро Microsoft Jet выполнять операции
каскадного обновления и каскадного удаления над главными и внешними связанными
таблицами.
6. Указать с помощью свойства Attributes, принадлежит ли
связь между таблицами к типу левого объединения или правого объединения.
7.
Использовать значения свойства Name всех объектов Field из
семейства Fields объекта Relation для задания или возвращения имен
полей ключа адресуемой таблицы, а также значения свойства ForeignName
объектов Field для задания или возвращения имен полей внешнего ключа
адресующей таблицы.
При попытке внесения изменений, противоречащих связям,
установленным в базе данных, возвращает перехватываемая ошибка. При попытке
выполнить операции каскадного обновления или каскадного удаления ядро базы
данных Microsoft Jet изменяет в таблицах ключ и внешний ключ таким
образом, чтобы обеспечить условия установленной связи.
Например, в
демонстрационной базе данных "Борей" установлена связь между таблицами "Заказы"
и "Клиенты". Поле "КодКлиента" таблицы "Клиенты" является ключевым, а поле
"КодКлиента" в таблице "Заказы" является полем внешнего ключа. При занесении
новой записи в таблицу "Заказы" ядро Microsoft Jet проводит поиск в
таблице "Клиенты" записей с совпадающим значением поля "КодКлиента". Если такая
запись не найдена, ядро Microsoft Jet не принимает новую запись, и
возникает перехватываемая ошибка.
При задании режима сохранения целостности
данных должен существовать уникальный индекс для ключевого поля адресуемой
таблицы. Ядро базы данных Microsoft Jet автоматически создает индекс и
устанавливает значение свойства Foreign в адресующей таблице, необходимое
для выполнения роли внешнего ключа.
Для создания нового объекта
Relation следует вызвать метод CreateRelation. При ссылках на
объект Relation используют его порядковый номер в семействе или значение
свойства Name (имя):
Relations(0) Relations("имя") Relations![имя]